package com.l.d.app.library.app;

import android.app.Application;
import android.support.annotation.NonNull;

import com.pgyersdk.Pgy;
import com.pgyersdk.crash.PgyCrashManager;
import com.umeng.analytics.MobclickAgent;

import skin.support.SkinCompatManager;

/**
 * Created by 林德 on 2017/4/12 11:12.
 * <p/>
 */
public abstract class AppLibraryApplication extends Application
{
    @Override
    public final void onCreate()
    {
        super.onCreate();
        // 换肤支持初始化
        SkinCompatManager.init(this).loadSkin();
        // 蒲公英初始化
        Pgy.init(this, pgyAppId());
        // 蒲公英异常反馈上报
        PgyCrashManager.register(this);
        // 友盟初始化
        // E_UM_NORMAL 普通统计场景
        // E_UM_GAME 游戏场景类型
        // E_UM_ANALYTICS_OEM 统计盒子场景类型
        // E_UM_GAME_OEM 游戏盒子场景类型
        final MobclickAgent.UMAnalyticsConfig config = new MobclickAgent.UMAnalyticsConfig(this, umengAppId(), umengAppChannel(),
                MobclickAgent.EScenarioType.E_UM_NORMAL);
        MobclickAgent.startWithConfigure(config);
        MobclickAgent.openActivityDurationTrack(false);//禁止默认的页面统计方式，这样将不会再自动统计Activity。

        completely();
    }

    /** 蒲公英 APP ID */
    @NonNull
    protected abstract String pgyAppId();

    /** 友盟 APP ID */
    @NonNull
    protected abstract String umengAppId();

    /** 友盟 APP CHANNEL */
    @NonNull
    protected abstract String umengAppChannel();

    /** 完成初始化操作后 */
    protected abstract void completely();
}
